package com.itheima.tlias84.mapper;

import com.itheima.tlias84.dto.SelectClazzAllDTO;
import com.itheima.tlias84.dto.SelectClazzDTO;
import com.itheima.tlias84.dto.SelectClazzDetailDTO;
import com.itheima.tlias84.po.InsertClazzParam;
import com.itheima.tlias84.po.SelectClazzPageParam;
import com.itheima.tlias84.po.UpdateClazzParam;
import com.itheima.tlias84.po.UpdateEmpParam;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 班级mapper：增删改查
 * GET：1、分页查询
 *      2、根据id查询
 *      3、根据查询班级的所有学生
 * POST：添加班级
 * PUT：修改班级
 * DELETE：删除班级
 */
@Mapper
public interface ClazzMapper {
    /**
     * 添加班级
     */
    int insertClazz(@Param("p") InsertClazzParam param);

    /**
     * 分页查询班级
     * @param param 查询条件
     * @return 查询结果
     */
    List<SelectClazzDTO> selectClazzByPage(@Param("p") SelectClazzPageParam param);

    /**
     * 修改更新班级
     * @param param 更新参数
     * @return 更新结果
     */
    int updateClazz(@Param("p") UpdateClazzParam param);

    /**
     * 根据id查询班级
     * @param id 班级id
     * @return 查询结果
     */
    SelectClazzDetailDTO selectClazzById(@Param("id") Integer id);

    List<SelectClazzAllDTO> selectClazzAll();

    int deleteById(@Param("id") Integer id);
}
